﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;
using System.Text;

/// <summary>
/// Summary description for Usuarios
/// </summary>
public class Usuarios
{
    private string user;
    private string senha;
    private string perfil;
    private string stConn = ConfigurationManager.ConnectionStrings["DefaultConnectionString"].ConnectionString;

    public Usuarios()
    {
        Limpar();        
    }

    //utilizado pelo login
    public Usuarios(string user, string senha)
    {
        this.user = user;
        this.senha = senha;
    }

    //utilizada no usuárionovo
    private void Limpar()
    {
        this.user = null;
        this.senha = null;
        this.perfil = null;
    }

    //utilizada no usuarionovo
    private void load(String user)
    {
        string sql = "select * from usuarios where usuario='" + user +"'";
        DataTable dtbdados = new DataTable();
        Execute a = new Execute();

        dtbdados = a.Pesquisar(sql);

        if (dtbdados.Rows.Count > 0)
        {
            this.user = dtbdados.Rows[0]["usuario"].ToString();
            this.senha = dtbdados.Rows[0]["senha"].ToString();
        }
    }

    public String Senha
    {
        get { return this.senha; }
        set { this.senha = value; }
    }

    public String Perfil
    {
        get { return this.perfil; }
        set { this.perfil = value; }
    }

    public String Usuario
    {
        get { return this.user; }
        set{ this.user = value; } 
    }



    //aqui
    private void CarregaPermissoes(string Usuario)
    {
        StringBuilder sbQuery = new StringBuilder();

        sbQuery.Append("SELECT tipopessoa.* FROM usuarios LEFT JOIN TipoPessoa ON usuarios.perfil = tipopessoa.idtipopessoa WHERE usuario = '");
        sbQuery.Append(Usuario);
        sbQuery.Append("'");

        //Execute oExecute = new Execute();

//        SqlConnection oConn = new SqlConnection(stConn);
        SqlCommand oCommand = new SqlCommand(sbQuery.ToString(), Execute.RetornaConexaoDB());

        SqlDataAdapter oAdapter = new SqlDataAdapter(oCommand);
        DataTable tbUsuario = new DataTable();

        oCommand.Connection.Open();

        oAdapter.Fill(tbUsuario);

        if (tbUsuario.Rows.Count > 0)
        {
            DataRow oLinhaUsuario = tbUsuario.Rows[0];

            if (oLinhaUsuario["permiteagenda"].ToString() == "True")
                PermiteAgenda = true;

            if (oLinhaUsuario["permiteempresa"].ToString() == "False")
                PermiteEmpresa = true;
        }
        else
        {
            PermiteAgenda = false;
            PermiteEmpresa = false;
        }

        oCommand.Connection.Close();
    }

    public Usuarios(string user)
    {
        //Limpar();
        load(user);        
        CarregaPermissoes(user);
    }

    
    public Usuarios(string user, string senha, int perfil)
    {
        this.user = user;
        this.senha = senha;
        this.perfil = perfil.ToString();
    }

    //permissões
    public bool PermiteAgenda
    {
        get;
        set;
    }

    public bool PermiteEmpresa
    {
        get;
        set;
    }

    public void pesquisaUsuario(string user)
    {        
        //Cria a consulta e efetua a conexao no banco de dados para consultar o usuario
        DataTable dtUsuario = new DataTable("usuarios");
        string consulta;

        if (user == "")
        {
            consulta = "select * from usuarios";
        }
        else
        {
            consulta = "select * from usuarios where usuario='" + user + "'";
        }
        SqlDataAdapter adpt = new SqlDataAdapter(consulta, stConn);

        adpt.Fill(dtUsuario);
    }

    public Boolean entrar(string user, string senha)
    {        
            //Cria a consulta e efetua a conexao no banco de dados para consultar o usuario
            DataTable dtUsuario = new DataTable("usuarios");

            string consulta = "select * from usuarios where usuario='" + user + "'";

            SqlDataAdapter adpt = new SqlDataAdapter(consulta, stConn);

            adpt.Fill(dtUsuario);

            //se nao existirem linhas, é pq nao foi encontrado nenhum registro, logo
            //nao foi encontrado nenhum usuario
            if (dtUsuario.Rows.Count == 0)
            {
                //mensagem de usuario nao encontrado
                return false;
            }
            else
            {
                //aqui será feita a codificacao se o usuario for encontrado
                if (dtUsuario.Rows[0]["senha"].ToString().Equals(senha))
                {
                    //senha confere
                    //instancia objeto usuario
                    //insere objeto usuario na sessao
                    //acessa a tela principal
                    Usuarios usr = new Usuarios(dtUsuario.Rows[0]["usuario"].ToString(),
                                                dtUsuario.Rows[0]["senha"].ToString(),
                                                (int)dtUsuario.Rows[0]["perfil"]);



                    return true;
                }
                else
                {
                    //senha nao confere
                    return false;
                    //return("Senha não confere!");
                }
            }
    }



}
